package models

import (
	"gorm.io/gorm"
)

type AdminUser struct {
	ID        uint           `gorm:"column:id;primaryKey" json:"id"`
	Name      string         `gorm:"column:name" json:"name"`
	RoleID    int            `gorm:"column:role_id" json:"role_id"`
	Mobile    string         `gorm:"column:mobile" json:"mobile"`
	Password  string         `gorm:"column:password" json:"-"`            // json:"-" 表示不序列化密码
	CreatedAt JsonTime       `gorm:"column:created_at" json:"created_at"` // 时间格式处理
	UpdatedAt JsonTime       `gorm:"type:timestamp;comment:更新时间" json:"updated_at"`
	DeletedAt gorm.DeletedAt `gorm:"type:timestamp;index;comment:删除时间" json:"-"`
	// 不映射到数据库的字段
	RoleName string `json:"role_name" gorm:"-"`
}

// 状态映射
func getStatusText(status int) string {
	statusMap := map[int]string{
		1: "超级管理员",
		2: "联营",
	}
	return statusMap[status]
}

// 查询后自动填充 RoleText
func (u *AdminUser) AfterFind(tx *gorm.DB) (err error) {
	u.RoleName = getStatusText(u.RoleID)
	return nil
}

// 表示配置操作数据库的表名称
func (AdminUser) TableName() string {
	return "admin_users"
}
